home *** CD-ROM | disk | FTP | other *** search
-
-
-
- CCCCQQQQRRRRSSSSLLLL((((3333FFFF)))) CCCCQQQQRRRRSSSSLLLL((((3333FFFF))))
-
-
-
- NNNNAAAAMMMMEEEE
- CQRSL - CQRSL applies the output of CQRDC to compute coordinate
- transformations, projections, and least squares solutions. For K .LE.
- MIN(N,P), let XK be the matrix
-
- XK = (X(JVPT(1)),X(JVPT(2)), ... ,X(JVPT(K)))
-
- formed from columnns JVPT(1), ... ,JVPT(K) of the original N x P matrix X
- that was input to CQRDC (if no pivoting was done, XK consists of the
- first K columns of X in their original order). CQRDC produces a factored
- unitary matrix Q and an upper triangular matrix R such that
-
- XK = Q * (R)
- (0)
-
- This information is contained in coded form in the arrays X and QRAUX.
-
-
- SSSSYYYYNNNNOOOOPPPPSSSSYYYYSSSS
- SUBROUTINE CQRSL(X,LDX,N,K,QRAUX,Y,QY,QTY,B,RSD,XB,JOB,INFO)
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- On Entry
-
- XXXX COMPLEX(LDX,P).
- X contains the output of CQRDC.
-
- LLLLDDDDXXXX INTEGER.
- LDX is the leading dimension of the array X.
-
- NNNN INTEGER.
- N is the number of rows of the matrix XK. It must
- have the same value as N in CQRDC.
-
- KKKK INTEGER.
- K is the number of columns of the matrix XK. K
- must not be greater than (N,P), where P is the
- same as in the calling sequence to CQRDC.
-
- QQQQRRRRAAAAUUUUXXXX COMPLEX(P).
- QRAUX contains the auxiliary output from CQRDC.
-
- YYYY COMPLEX(N)
- Y contains an N-vector that is to be manipulated
- by CQRSL.
-
- JJJJOOOOBBBB INTEGER.
- JOB specifies what is to be computed. JOB has
- the decimal expansion ABCDE, with the following
- meaning.
- If A .NE. 0, compute QY.
- If B,C,D, or E .NE. 0, compute QTY.
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- CCCCQQQQRRRRSSSSLLLL((((3333FFFF)))) CCCCQQQQRRRRSSSSLLLL((((3333FFFF))))
-
-
-
- If C .NE. 0, compute B.
- If D .NE. 0, compute RSD .
- If E .NE. 0, compute XB.
- Note that a request to compute B, RSD, or XB
- automatically triggers the computation of QTY, for
- which an array must be provided in the calling
- sequence. On Return
-
- QQQQYYYY COMPLEX(N).
- QY contains Q*Y, if its computation has been
- requested.
-
- QQQQTTTTYYYY COMPLEX(N).
- QTY contains CTRANS(Q)*Y, if its computation has
- been requested. Here CTRANS(Q) is the conjugate
- transpose of the matrix Q.
-
- BBBB COMPLEX(K)
- B contains the solution of the least squares problem
- minimize NORM2(Y - XK*B),
- if its computation has been requested. (Note that
- if pivoting was requested in CQRDC, the J-th
- component of B will be associated with column JVPT(J)
- of the original matrix X that was input into CQRDC.)
-
- RRRRSSSSDDDD COMPLEX(N).
- RSD contains the least squares residual Y - XK*B,
- if its computation has been requested. RSD is
- also the orthogonal projection of Y onto the
- orthogonal complement of the column space of XK.
-
- XXXXBBBB COMPLEX(N).
- XB contains the least squares approximation XK*B,
- if its computation has been requested. XB is also
- the orthogonal projection of Y onto the column space
- of X.
-
- IIIINNNNFFFFOOOO INTEGER.
- INFO is zero unless the computation of B has
- been requested and R is exactly singular. In
- this case, INFO is the index of the first zero
- diagonal element of R and B is left unaltered. The parameters QY,
- QTY, B, RSD, and XB are not referenced if their computation is not
- requested and in this case can be replaced by dummy variables in the
- calling program. To save storage, the user may in some cases use the
- same array for different parameters in the calling sequence. A
- frequently occuring example is when one wishes to compute any of B, RSD,
- or XB and does not need Y or QTY. In this case one may identify Y, QTY,
- and one of B, RSD, or XB, while providing separate arrays for anything
- else that is to be computed. Thus the calling sequence CALL
- CQRSL(X,LDX,N,K,QRAUX,Y,DUM,Y,B,Y,DUM,110,INFO) will result in the
- computation of B and RSD, with RSD overwriting Y. More generally, each
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-
-
-
- CCCCQQQQRRRRSSSSLLLL((((3333FFFF)))) CCCCQQQQRRRRSSSSLLLL((((3333FFFF))))
-
-
-
- item in the following list contains groups of permissible identifications
- for a single callinng sequence. 1. (Y,QTY,B) (RSD) (XB) (QY) 2.
- (Y,QTY,RSD) (B) (XB) (QY) 3. (Y,QTY,XB) (B) (RSD) (QY) 4. (Y,QY) (QTY,B)
- (RSD) (XB) 5. (Y,QY) (QTY,RSD) (B) (XB) 6. (Y,QY) (QTY,XB) (B) (RSD) In
- any group the value returned in the array allocated to the group
- corresponds to the last member of the group. LINPACK. This version
- dated 08/14/78 . Stewart, G. W., University of Maryland, Argonne
- National Lab.
-
- CCCCQQQQRRRRSSSSLLLL uses the following functions and subprograms. BLAS
- CAXPY,CCOPY,CDOTC Fortran ABS,AIMAG,MIN0,MOD,REAL
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 3333
-
-
-
-